/******
 * 函数指针  指针，指向一个函数
 */
//init
void setup(){
    Serial.begin(9600);
    char c = 'f';
    //void (*func)(char *) = lower;   //定义函数指针，参数和返回值与函数一致
    //do_case(lower, &c);             //大写转小写
    do_case(upper, &c);             //小写转大写
    Serial.println(c);
}

//将函数指针作为do_case函数的参数
void do_case(void (*func)(char *),char * ptrLetter) {
    func(ptrLetter);
}

//loop
void loop() {
  
}

//to upper
void upper(char *ptrC) {
    *ptrC -= 32;  
}

//to lower
void lower(char *ptrC) {
    *ptrC += 32;    
}
